package academic.ui.client;

import java.util.ArrayList;


import ecommerce.soco.shared.GWT_City;
import ecommerce.soco.shared.GWT_Customer;
import ecommerce.soco.shared.GWT_Discussion;
import ecommerce.soco.shared.GWT_Event;
import ecommerce.soco.shared.GWT_Message;
import ecommerce.soco.shared.GWT_Product;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface AppServiceAsync {

	public void getUser(AsyncCallback<GWT_Customer> items);
	
	public void getFullProduct(Integer id, AsyncCallback<GWT_Product> asyncCallback);

	public void getCurrentProduct(AsyncCallback<GWT_Product> asyncCallback);
	
	public void isLoggedIn(AsyncCallback<Boolean> hasSession);

	public void logout(AsyncCallback<Boolean> asyncCallback);

	public void getActiveProducts(
			AsyncCallback<ArrayList<GWT_Product>> asyncCallback);

	public void getRecentProducts(
			AsyncCallback<ArrayList<GWT_Product>> asyncCallback);

	public void getFullWithActiveProducts(Integer parseInt,
			AsyncCallback<ArrayList<GWT_Product>> asyncCallback);

	public void getParticipatingCities(
			AsyncCallback<ArrayList<GWT_City>> asyncCallback);

	public void updateCity(String value, AsyncCallback<Boolean> asyncCallback) ;

	public void setCity(AsyncCallback<Boolean> asyncCallback);

	public void appReset(AsyncCallback<Boolean> asyncCallback);

	public void submitEmailToList(String text,
			AsyncCallback<Boolean> asyncCallback);

	public void loginFBUser(String email,
			AsyncCallback<Boolean> asyncCallback);

	public void getDiscussion(String productId,AsyncCallback<GWT_Discussion> asyncCallback);

	public void updateDiscussion(String productID, String text,Boolean addFollower,
			AsyncCallback<GWT_Message> asyncCallback);

	public void createEvent(GWT_Event event, AsyncCallback<GWT_Event> asyncCallback);

}
